]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
dateMenu: Don't make dateMenuButton reactive on current day
authorCarlos Soriano <carlos.soriano89@gmail.com>
Wed, 19 Mar 2014 14:23:05 +0000 (19:23 +0500)
committerCarlos Soriano <carlos.soriano89@gmail.com>
Mon, 28 Apr 2014 23:02:27 +0000 (01:02 +0200)
Having the ability to go to the current date if the user is already
on the current date can be confusing. So don't make the button reactive
until the selected date changes.

https://bugzilla.gnome.org/show_bug.cgi?id=726724

js/ui/dateMenu.js

index e869607069be2dec30372d96235a7c0801815c69..009df83aa59406b03fbfc1bedd41efb0f1e95dca 100644 (file)
@@ -63,8 +63,11 @@ const DateMenuButton = new Lang.Class({
         hbox.add(vbox);
 
         // Date
+        // Having the ability to go to the current date if the user is already
+        // on the current date can be confusing. So don't make the button reactive
+        // until the selected date changes.
         this._date = new St.Button({ style_class: 'datemenu-date-label',
-                                     can_focus: true,
+                                     reactive: false
                                    });
         this._date.connect('clicked',
                            Lang.bind(this, function() {
@@ -82,6 +85,9 @@ const DateMenuButton = new Lang.Class({
                                   // and the calender makes those dates unclickable when instantiated with
                                   // a null event source
                                    this._eventList.setDate(date);
+
+                                   // Make the button reactive only if the selected date is not the current date.
+                                   this._date.can_focus = this._date.reactive = !this._isToday(date)
                                }));
         vbox.add(this._calendar.actor);
 
@@ -132,6 +138,13 @@ const DateMenuButton = new Lang.Class({
         this._sessionUpdated();
     },
 
+    _isToday: function(date) {
+        let now = new Date();
+        return now.getYear() == date.getYear() &&
+               now.getMonth() == date.getMonth() &&
+               now.getDay() == date.getDay();
+    },
+
     _appInstalledChanged: function() {
         this._calendarApp = undefined;
         this._updateEventsVisibility();